package cn.school.teacher.evaluation.service;

import cn.school.teacher.evaluation.dto.TeacherEvaluationUserTaskDto;
import cn.school.teacher.evaluation.entity.TeacherEvaluationTask;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.Map;

/**
 * 老师考核：用户任务task
 */
public interface EvaluationUserTaskService {
	/**
	 * 获取用户任务的列表
	 */
	IPage<TeacherEvaluationUserTaskDto> getPage(Map<String, Object> params);
	
	/**
	 * 获取用户任务详情（包含打分数据）
	 */
	TeacherEvaluationUserTaskDto getUserTaskItemData(Map<String, Object> params);
	
	/**
	 * 保存或更新用户打分数据
	 *
	 * @param params
	 */
	TeacherEvaluationUserTaskDto saveOrUpdateItemDate(Map<String, Object> params);
	
	/**
	 * 判断总任务，所有子任务是否全部打分
	 *
	 * @param teacherEvaluationTask
	 * @param computerMap keys:sumScore, sumMember
	 * @author fangjin.tao
	 * @updateTime 2022/12/7 13:04
	 */
	boolean isSuccessByTakeScore(TeacherEvaluationTask teacherEvaluationTask, Map<String, Object> computerMap);
	
	/**
	 * 得到主任务的打的总分
	 *
	 * @author fangjin.tao
	 * @param: teacherEvaluationTask
	 * @updateTime 2022/12/7 13:58
	 * @return: java.lang.Double
	 */
	Double getSumScore(TeacherEvaluationTask teacherEvaluationTask);
	
	/**
	 * 得到主任务的【应打分】总人数
	 *
	 * @throws
	 * @author fangjin.tao
	 * @param: teacherEvaluationTask
	 * @updateTime 2022/12/7 14:28
	 * @return: java.lang.Double
	 */
	Integer getSumMember(TeacherEvaluationTask teacherEvaluationTask);
	
	/**
	 * 得到主任务【有效】已打分人数
	 *
	 * @throws
	 * @author fangjin.tao
	 * @param: teacherEvaluationTask
	 * @updateTime 2022/12/7 14:39
	 * @return: java.lang.Integer
	 */
	Integer getSumMemberByHaveScore(TeacherEvaluationTask teacherEvaluationTask);
}
